iT邦幫忙

2021 iThome 鐵人賽

DAY 30
0
自我挑戰組

資料分析及AI深度學習-簡單基礎實作系列 第 30

DAY30:賽後心得檢討

  • 分享至 

  • xImage
  •  

完賽檢討

  1. 資料處理

    • 雖然我們有大致上把紅框等雜訊去除掉,但我們還是沒有完全把照雜訊清除乾淨。
    • YoloV4去框中文字,可是有些圖片會被框失誤,會浪費幾張框錯的圖片,有組別是完全用手動去裁切字,雖花較多時間,但是效果會比較好,就是所謂人工智慧前的工人智慧啦。
    • 人工標籤中文字的label的時候,還是有眼花標籤錯的時候,例如"士"標成"土"等等。雖然筆數不多,但多少都會對模型帶來影響。
  2. 圖片樣本數

    • 圖片樣本數原圖約快70000張,我們用mask的方式,給文字加上黑色方塊,增加至約18萬張。但樣本數還是不夠,有組別提出增加圖片的方式,用文字搭配空白合成圖片的方式,如下圖,甚至第一名的組別用GAN去讓電腦自動生成很像真實圖片的合成圖片(GAN方法我們還在研究中),這樣可以輕鬆增加大量樣本數。
  3. 資料不平衡

    • 有些字的圖片張數較少,例如"仙"只有14張,而丁有100張,送入模型訓練時會有比例不同的問題。

    • 例如"士"跟"土",若"土"的圖片較多,那"士"很有可能常態性的會被辨認為"土"。

    • 解決方法

      • 利用上述所說的合成圖去增加張數較少的字的樣本數,例如每個字都補足200張。
      • 或者隊友實測(傳送門),可以用keras內建的Keras class_weight(類別權重)去調整。模型訓練時,樣本較多的類別,權重低;樣本較少的類別,權重高。
  4. 模型訓練

    • 首先硬體部分要先滿足,當樣本數更大量時,一個模型可能要練半天到一天都有可能。
    • 在優化器搭配學習率的部分可以多加嘗試,我個人都使用SGD優化器加上CosineAnnealing(餘弦退火)去訓練,但或許有更好的組合。
    • 可以多嘗試各種模型,例如我們組別練過VGG19、Xception、InceptionV4及DenseNet等等。

心得

  • 在訓練模型的時候發現,學習率非常重要,因為模型很容易落在局部最佳或者鞍點,若使用正確的更新學習率方式,可以避免出現此情況。

  • 模型訓練固然重要,但資料清洗和樣本數及比例平衡才是王道。前幾名的組別,樣本數都是我們的好幾倍,他們的模型也都跟我們一樣,但是練出來就是準確度比較高。

  • 多參加比賽,一次比賽就可以從中學到很多東西,看書搭配實作,進步更加神速。


上一篇
DAY29:開啟API服務(完賽)
系列文
資料分析及AI深度學習-簡單基礎實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言